﻿///////////////////////////////////////////////////////////////////////////////
///
/// Cylan Client Core
/// Copyright (C) Shenzhen Cylan Tech. Co., Ltd. 2012
///
/// @file       VPN.h
/// @brief      TCP隧道库
///
///////////////////////////////////////////////////////////////////////////////
#ifndef CC_VPN_H
#define CC_VPN_H

#include "Core.h"

/**
 * @fn CC_STATUS VPNInit(CHANDLE Session)
 * @brief 初始化VPN库
 * @param Session 已登陆的会话句柄
 * @retval ERR_SUCCESS 初始化成功
 * @retval ERR_UNSUCCESS 初始化失败
 * @note 如果需要绑定另一个会话, 需要先执行VPNCleanup清除上一次初始化.
 */
CC_STATUS VPNInit(CHANDLE Session);

/**
 * @fn CC_STATUS VPNStart()
 * @brief 启动VPN隧道, 所有匹配登陆账号拥有的TCP资源的访问将会进行转发.
 */
CC_STATUS VPNStart();

/**
 * @fn CC_STATUS VPNStop()
 * @brief 停止VPN隧道
 */
CC_STATUS VPNStop();

/**
 * @fn CC_STATUS VPNCleanup()
 * @brief 清理VPN库
 */
CC_STATUS VPNCleanup();

#endif // CC_VPN_H
